Computer users expect low latency, high-quality monitor display and printer output, particularly in the area of text fonts. Since the advent of desktop publishing applications operating on personal computers, individuals have been publishing documents having a wide range of fonts. Storing fonts in computers and laser printers consumes a lot of digital memory, which results in trading off computer memory cost with the number of fonts being provided for the user. For this reason, there have been developments in reducing the storage size of text fonts while maintaining the high-quality output computer users have come to expect.
When an analog version of a letterform is converted to digital form for output on a raster device, there can be a significant loss of important detail due to quantization. Additionally, storing the digital version in its raster form for direct output on a raster device restricts output sizes unless many raster resolutions are made available, thereby increasing digital data storage requirements.
Several systems (AGFA® Intellifont®, Adobe® Type1™, Apple®/Microsoft® TrueType®) have been developed to deal with this problem by capturing digital letterforms as “scalable outlines” to promote size and resolution independence and by providing “scaling hints” to reduce the negative effects of low resolution rasterization.
The capability of these systems to deliver quality output has led to increased demand by computer/software users for a wider range of typeface designs. As more typefaces have become available, there has been increased interest in methods of font data compression. Systems developed to address this problem fall into two basic categories: font compression by synthesis and font compression by factoring.
Compression by Font Synthesis:
The FontChameleon® font compression technique incorporates one or more “master fonts” and more than 200 typeface design descriptors that reshape the master font to simulate popular typeface designs. Each master font comprises outlines containing, as control points, all required features to define any of the typeface design style variations supported by the master. Scaling hints are algorithmically generated. The actual typeface does not exist until it is synthesized, thereby reducing data storage requirements.
Infinifont® software modules generate basic letterforms which, when fed Panose® typeface classification system descriptors, produce simulations of a variety of popular typeface designs. Again, scaling hints are algorithmically generated as a post process. As with the FontChameleon® software modules compression technique, the actual typeface does not exist until it is synthesized, thereby reducing data storage requirements.
Compression by Font Factoring:
Careful scrutiny of the data describing a large collection of typefaces reveals a significant amount of redundant information. Removing this redundant information is used to create a more compact, concise data format. This innovative process is called Compression by Factoring, because it is based on the mathematical notion of “factoring” any information that is used repeatedly, storing it once, and sharing it when needed.
Factoring is accomplished at multiple levels by extracting information that is common across varying “cross-sections”, or planes, of the total data set. For instance:
1) At the Font Collection Level, information, such as tables that are necessary for each typeface, are stored once, eliminating redundancies, and shared by many of the typefaces (i.e., fonts) in the font collection.
2) At the Typeface Style Level, letterforms have identical topology, and because the scaling hints capture this topology, the same hints are captured in a structure which is applied to each typeface in a given typeface style. This structure is referred to as a Model of Associations between Letterform Features, or simply, Model.3) At the Typeface Level, common design feature measurements, which are used repeatedly within many characters within that typeface, are extracted, stored once and shared with many characters—examples being y-line heights, stem width, serif lengths, etc.4) At the individual Character Level, much of the topological information defined in the outline is repeated in the topological information required to capture the scaling hints. By using the topology of the scaling hints to generate the outline, redundant information is eliminated.
5) At the Data Unit Level, within the definition of common typeface measurements (Global Dimensions of Associations), as well as within the definition of measurements specific to a single character (Local Dimensions of Associations), dimension values are mathematically factored to be represented by (i) a common scale factor, which is stored once per typeface, and (ii) a dimension value, whose range is thereby significantly reduced, requiring fewer bits for definition.
6) At the Contour Definition Level, within the definition of contour features specific to a single character (Contour Segment Descriptors), curve control values are ordered and normalized relative to adjacent character features. This reduces the range of their values and likewise reduces data storage requirements.
The basis for Compression by Font Factoring is unique. Where other systems for font compression concentrate on methods to compress the letterform outlines as the primary issue, dealing with the scaling hints as a secondary issue, Font Factoring deals with the letterform and hints as being two inseparable and indistinguishable components of the letterform essence. In fact, the unique approach to font factoring is that the hints, with all their attributes, are used to give form to the otherwise shapeless letterform outline.
To understand how font factoring works, it is helpful to have a basic understanding of font scaling and the hints required to support that process. To begin with, one must keep in mind that typefaces are not designed numerically. Although letterforms appear to be designed with a great deal of consistency, that consistency is visual, not numerical. In fact, in order to achieve visual consistency, it is necessary for typeface designs to be numerically inconsistent in order to overcome the optical illusions created by diverse shapes, stroke directions and stroke intersections. When digitally capturing, scaling and imaging such visual information, much of the nuance specifically introduced to support visual consistency can be lost. In order to preserve the nuance and improve the quality of the letterform scaling process, the technique of intelligent scaling has been developed and implemented. This technique requires an analysis of the letterform shapes in order to capture in data and algorithms the information that will preserve and support the letterform shape and nuance during scaling. This information has come to be called “scaling intelligence”, “scaling hints” or simply “hints”.
Under Intellifont®/MicroType® font compression technologies, improved scalability of a character's contours is achieved by a character's scaling intelligence in the form of:
(1) A subset of key points on the character contour, designated skeletal points, which must maintain some established relationship to the bitmap grid—as well as to other skeletal points in the character. Each skeletal point represents a key character feature.(2) Specifically assigned associations between these skeletal points, for the purpose of maintaining important internal character relationships.(3) Classification of skeletal points by their external relationship to key vertical addresses or Y-lines.
This additional “intelligence” provides Intellifont®/MicroType® font compression technology scaling algorithms with the necessary information to control a character's internal order as the character is scaled and translated to a bitmap. In the case of Intellifont® font compression technology, this additional intelligence is applied to the character outline during scaling. In the case of the MicroType® font compression technology algorithm, this additional intelligence supports the actual creation of the letterform outline.
Character Height Alignment Relative to Y-Lines:
Because of their intentionally designed variations, character heights often round inappropriately to create misaligned characters when left unmaintained. Therefore, the intelligent scaling process establishes control over a defined set of key horizontal lines (Y-lines) in the typeface. This is accomplished such that internal character forms maintain correct internal proportion.
To this end, specific segments along character contours are assigned to defined “bands,” called Y-classes, which run horizontally from character to character through a line of text. A typical band is defined by two Y-lines—such as the Y-value of the baseline and the Y-value of the lowercase x-height. Character features which are visually related to each of these Y-classes are assigned to them through the hints.
X/Y Associations:
As scaling takes place, certain internal dimensional relationships in a character design must remain consistent in relation to one another. However, due to rounding errors inherent in the representation of (analog) artwork as discrete pixels, such dimensional relationships are often lost. Because of this, a means for controlling internal relationships during scaling is provided. These dimensional relationships are established by “linking” pairs of associated skeletal points.
For example, a skeletal point defining the left side of a character stem is linked to the associated skeletal points on the right side of the stem because of the visual association between each side of a stem. Consistently applied to all similar character features, such associations ensure the consistent handling of these features during scaling.
Sequencing of Character Associations:
Not all character dimensional relationships can be controlled as scaling and manipulation take place. Some dimensional relationships must be allowed to vary so that others can be maintained. For example, if the two stems and the overall width of a lowercase “n” are controlled by associations, then the counter of the character, i.e., the space between two stems, must be allowed to vary from its original design; otherwise there is an unresolvable conflict. It is best to provide some compromise in controlling character dimensional relationships by exercising partial constraint over certain dimensions. This is determined by the sequencing of skeletal point associations to form a tree structure relationship between all skeletal points. Therefore, the sequence in which skeletal processing takes place is important, and is captured in the skeletal tree.